--[[
    EVAL script numkeys key [key ...] arg [arg ...]

    script是第一个参数，为Lua 5.1脚本。该脚本不需要定义Lua函数（也不应该）。
    第二个参数numkeys指定后续参数有几个key。
    key [key …]，是要操作的键，可以指定多个，在lua脚本中通过KEYS[1], KEYS[2]获取。
    arg [arg …]，参数，在lua脚本中通过ARGV[1], ARGV[2]获取。
]]--

if redis.call('exists', KEYS[1]) == 0 then
    if redis.call('hget', KEYS[2], 'date') == ARGV[1] then
        if redis.call('hexists', KEYS[2], ARGV[2]) == 1 then
            return redis.call('hincrby', KEYS[2], ARGV[2], 1)
        else
            return 0
        end
    else
        return 0
    end
else
    return 0
end